package LearnJava.IO;

/*
    java.io.InputStream : 字节输入流
    此抽象类是表示字节输入流的所有类的超类

    定义了所有子类共性的方法：
        int read() 从输入流中读取数据的下一个字节
        int read(byte[] b) 从输入流中读取一定数量的字节，并将其存储在缓冲区数组b中
        void close()
        关闭此输入流并释放与该关联的所有系统资源

    java.io.FileInputStream extends InputStream
    FileInputStream : 文件字节输入流
    作用：把硬盘文件中的数据读取到内存中使用

    构造方法：
        FileInputStream(String name)
        FileInputStream(File file)
        参数：
            String name : 文件的路径
            File file : 文件

    构造方法作用：
        1.会创建FileInputStream对象
        2.会把FileInputStream对象指向创建好的文件

    使用步骤:
        1.创建FileInputStream对象，构造方法中绑定要读取的数据源
        2.使用FileInputStream对象中的read方法
        3.释放资源
 */

import java.io.FileInputStream;
import java.io.IOException;

public class InputStreamDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("E:\\test\\testdemo\\c.txt");
        /*//int read() 读取文件中的一个字节并返回，读取到文件的末尾返回-1
        int end = fis.read();
        System.out.println(end);*/

        int len = 0;
        /*
            布尔表达式：(len = fis.read()) != -1
            1.fis.read() 读取一个字节
            2.len = fis.read() 把读取到的字节赋值给变量len
            3.(len = fis.read()) != -1 判断变量是否不等于-1
         */
        while((len = fis.read()) != -1){
            System.out.println(len);
        }
        fis.close();
    }
}
